package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.FamMember;
import com.ruoyi.system.domain.MemberTreeSelect;

/**
 * 家谱成员Service接口
 * 
 * @author wk
 * @date 2022-05-19
 */
public interface IFamMemberService 
{
    /**
     * 查询家谱成员
     * 
     * @param memberId 家谱成员主键
     * @return 家谱成员
     */
    public FamMember selectFamMemberByMemberId(Long memberId);

    /**
     * 查询家谱成员列表
     * 
     * @param famMember 家谱成员
     * @return 家谱成员集合
     */
    public List<FamMember> selectFamMemberList(FamMember famMember);

    /**
     * 新增家谱成员
     * 
     * @param famMember 家谱成员
     * @return 结果
     */
    public int insertFamMember(FamMember famMember);

    /**
     * 修改家谱成员
     * 
     * @param famMember 家谱成员
     * @return 结果
     */
    public int updateFamMember(FamMember famMember);

    /**
     * 批量删除家谱成员
     * 
     * @param memberIds 需要删除的家谱成员主键集合
     * @return 结果
     */
    public int deleteFamMemberByMemberIds(Long[] memberIds);

    /**
     * 删除家谱成员信息
     * 
     * @param memberId 家谱成员主键
     * @return 结果
     */
    public int deleteFamMemberByMemberId(Long memberId);
    /**
     * 获取家谱成员表单中的男性成员
     *
     *
     * @return List<FamMember> 成员列表
     */
    public List<FamMember> selectmaleAll();

    /**
     * 获取家谱成员表单中的女性成员
     *
     *
     * @return List<FamMember> 成员列表
     */
    public List<FamMember> selectfemaleAll();
    /**
     * 构建前端所需要下拉树结构
     *
     * @param members 成员列表
     * @return 下拉树结构列表
     */
    public List<MemberTreeSelect> buildMemberTreeSelect(List<FamMember> members);
    /**
     * 构建前端所需要树结构
     *
     * @param members 成员列表
     * @return 树结构列表
     */
    public List<FamMember> buildMemberTree(List<FamMember> members);
}

